Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Relevanta dokument
Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Variabler och konstanter

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Introduktion till MATLAB

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Beräkningsverktyg HT07

Beräkningsvetenskap föreläsning 2

MMA132: Laboration 2 Matriser i MATLAB

Kort om programmering i Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Matlabövning 1 Funktioner och grafer i Matlab

Sanningar om programmering

TANA17 Matematiska beräkningar med Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Introduktion till Matlab

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Matriser och Inbyggda funktioner i Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

4.3. Programmering i MATLAB

For-sats/slinga. Notis

tal. Mängden av alla trippel av reella tal betecknas med R 3 och x 1 x 2 En sekvens av n reella tal betecknas med (x 1, x 2,, x n ) eller

Matriser och Inbyggda funktioner i Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Sanningar om programmering

JavaScript del 3 If, Operatorer och Confirm

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Introduktion till Matlab

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

Instruktion för laboration 1

Planering av ett större program, del 2 - for och listor. Linda Mannila

2 februari 2016 Sida 1 / 23

Mer om funktioner och grafik i Matlab

Matlabövning 1 Funktioner och grafer i Matlab

TANA17 Matematiska beräkningar med Matlab

TSBB14 Laboration: Intro till Matlab 1D

Logik och kontrollstrukturer

Grunderna i Matlab. Efter genomförda övningar skall du kunna förklara, redogöra för, och använda följande:

Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

i LabVIEW. Några programmeringstekniska grundbegrepp

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Introduktion till MATLAB Föreläsning 1

Mer om funktioner och grafik i Matlab

Introduktion till Matlab

Matlabföreläsningen. Lite mer och lite mindre!

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

Algoritmer, datastrukturer och komplexitet

Kort om programmering i Python

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

MMA132: Laboration 1 Introduktion till MATLAB

Språket Python - Del 1 Grundkurs i programmering med Python

Börja programmera. Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner. Läs inte avsnitt 4.2.3

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Övningsuppgifter till föreläsning 2 Variabler och uttryck

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

TAIU07 Matematiska beräkningar med Matlab

Visual Basic, en snabbgenomgång

Programmering i C, 7,5 hp

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Laboration: Grunderna i Matlab

2D1339 Programkonstruktion för F1, ht 2003

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Introduktion till Matlab

Motivering för programmering. F1: Introduktion, Matlabrepetition (kap. 1 2) Att kunna programmera. Interpreterat/kompilerat

Laboration: Grunderna i MATLAB

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Föreläsning 3. Iteration while-satsen

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

En introduktion till MatLab

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Ickelinjära ekvationer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Programmering i Matlab

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Data, typ, selektion, iteration

Föreläsning 1 & 2 INTRODUKTION

Linjära ekvationssystem

1 Iteration. 1.1 for-satsen

MATLAB. Vad är MATLAB? En kalkylator för linlär algebra. Ett programspråk liknande t.ex Java. Ett grafiskt verktyg.

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

DD1314 Programmeringsteknik

Introduktion till MATLAB, med utgångspunkt från Ada

Transkript:

Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från förra gången Man kan även se en vektor som en sekvens av skalärer. En sekvens kan exempelvis användas för att göra funktionstabeller. För att skapa en variabel a som innehåller alla heltal från 0-10 kan vi skriva a=[0:1:10]. Ett annat användbart kommando är linspace. Gör help linspace för att ta reda på hur det fungerar. Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska regler i Matlab. Ibland kan det hända att man vill utföra ovanståe operationer på varje element för sig i en vektor. Antag att vi för värdena x = 1, 2, 3, 4 och 5 vill beräkna x 2 dvs 1 2, 2 2, 3 2, 4 2 och 5 2. Om vi i Matlab skapar en vektor x=[1, 2, 3, 4, 5] och skriver xˆ2 så kommer vi få ett felmeddelande som säger att operationen inte är definierad. Varför? För att kunna hantera komponentvisa operationer för multiplikation, divison och upphöjt till har man infört tre nya operationer i Matlab. (.*) för multiplikation, (./) för division, och (.ˆ) för upphöjt till. Matlabs inbyggda funktioner som sin och exp osv opererar elementvis på vektorer (och matriser). Uppgift 1 - provuppgift Låt x1=[1, 1, 3, 4], x2=[3, -1, 2, 1] och x3=[-2, -1, 0, 1, 2 ]. Vad blir resultatet av följande uttryck A. x1.*x1 B. x1./x2 C. x1.ˆ2 D. x1.*x2 1

E. x1.ˆx2 F. x2.*x3 Uppgift 2 Utöka programmet i Uppgift 1 från Fö2 så att det beräknar luftmotståndet hos objektet för hastigheterna v = 10, 20, 30, 40, 50, 100 m/s. Programmet ska även plotta luftmotståndet som funktion av hastigheten. Upprepning med for-slinga Ibland vill man utföra samma beräkning eller ett antal satser (kommandoblock) flera Detta kan göras på olika sätt beroe på vad som styr hur många gånger satserna ska upprepas. Ett sätt är att använda en så kallad for-slinga. Denna använder man om man på förhand vet hur många gången ett visst kommandoblock ska upprepas. Generellt så skriver man en for-slinga på följande sätt for ii=1:slut kommandoblock I definitionen av for-slingan specificeras att variabeln ii ska börja på värdet 1 och anta alla heltal från 1 till slut. För varje värde på ii utförs kommandona som är specificerade i blocket. En for-slinga avslutas alltid med. Som exempel skriver följande rader ut värdet på en variabel tal på skärmen 5 Värdet på tal kommer att ges av variabeln ii. Vilka tal kommer vi att se på skärmen? for ii=1:5 tal=ii Upprepning med while-slinga Om man inte på förhand vet hur många gånger ett kommandoblock måste upprepas utan satserna upprepas så länge ett villkor är uppfyllt använder man en while-slinga. Generellt skriver man på följande sätt: while avbrottskriterium kommandoblock 2

I exemplet nedan kommer variabeln ii plussas på med ett så länge ii är mindre än 3. Vilka tal kommer vi att se på skärmen? ii=0; while ii<3 ii=ii+1 Nästlade slingor Ibland kan man ha användning för en slinga inuti en annan. Det kallas för en nästlad slinga. Uppgift 3 Skriv ett Matlab-program som beräknar positionen för två partiklar som startar i origo, (x, y) = (0, 0), och som rör sig enligt följande mönster Partikel 1 1. Går ett steg i x-led (negativ riktning) och ett steg i y-led (positiv riktning) 50 2. Går ett steg i x-led (positiv riktning) och ett steg i y-led (positiv riktning) 25 3. Går ett steg i x-led (positiv riktning) och ett steg i y-led (negativ riktning) 25 Partikel 2 1. Går ett steg i x-led (positiv riktning) och ett steg i y-led (positiv riktning) 50 2. Går ett steg i x-led (negativ riktning) och ett steg i y-led (positiv riktning) 25 3. Går ett steg i x-led (negativ riktning) och ett steg i y-led (negativ riktning) 25 Rita ut positionen för partiklarna i varje steg. Gör nu om programmet så att det under de 50 första stegen stannar om partikel 2s x-position blir större än 30. 3

Uppgift 4 - provuppgift Följande rader finns i ett program Uppg4.m. Vad blir utskriften på skärmen när vi kör programmet? clear all A=[1 2 3;4 5 6; 7 8 9]; for ii=1:3 for jj=1:3 disp(['matrisens element = ' num2str(a(ii,jj))]) Uppgift 5 - provuppgift Följande rader finns i ett program Uppg5.m. Vilket värde har x när det skrivs ut på skärmen? clear all x=0; ii=-5; while ii<0 x=x+ii; ii=ii+1; disp(['x = ' num2str(x)]) Villkorssatser Om man vill utföra olika beräkningar eller operationer beroe på olika variablers tillstånd kan man använda en if-sats. En if-sats undersöker om ett villkor är uppfyllt. Generellt, skriver man en if-sats på följande sätt if (villkor = sant) kommandoblock Ibland behöver man undersöka flera villkor och utföra kommandon beroe på vad som är uppfyllt och inte. Då använder man en antingen en if/else eller if/elseif/else-sats enligt nedan 4

if (villkor 1=sant) kommandoblock 1 else kommandoblock 2 if (villkor 1=sant) kommandoblock 1 elseif (villkor 2=sant) kommandoblock 2 else kommandoblock 3 Logik För att kunna kontrollera om ett villkor är uppfyllt eller inte måste vi testa variabler mot varandra. Detta görs med tre logiska operationer, NOT ( ), AND (&&) och OR ( ). Ett villkor som är uppfyllt (=sant) kommer att evalueras till 1 och ett villkor som inte är uppfyllt (=falskt) evalueras till 0. Uppgift 6 - provuppgift Låt a=5 och b=-2. Vad blir resultatet av följande kommandorader A. if a>7 elseif a<7 && b<0 B. if a==5 && b>0 elseif a==5 b>0 C. if a~=5 && b<0 elseif a==5 && b~=-2 5

D. if a~=5 && b<0 elseif a==5 && b~=-2 else disp(['inget ar ju uppfyllt!!']) Programmeringsstrategi Specificera problemet och vad programmet ska göra. Vad är in- och utdata? Hitta algoritmen (de steg som behöver utföras). Omvandla algoritmen till Matlab-kod. Testa programmet. Uppgift 7 Skriv ett Matlab-program som omvandlar poängen på en algebratentamen till ett bokstavsbetyg. Betyget ges enligt följande poängfördelning Betyg A B C D E Fx Totalt antal poäng 27 24 21 18 16 15 Varav poäng från C 6 3 Programmet ska ta totala poäng totalt samt poäng på C-delen som indata och skriva ut betyget på skärmen. 6